哈摟,大家好,我是小碼農米爾,其時我加入 it 邦蠻久了,之前一直沒有修改暱稱,使用的是 「fysh711426」 這個帳號,不過今年發生了一些事,這裡就不說了,所以想給自己一個新的名子,重新開始。希望小小碼農,有一天也能用程式改變世界。
在這個框架、技術大爆發的時代,你是否也得了「新技術焦慮症」,不停的學習新技術、新框架,但內心卻還是感到非常焦慮呢?
遇到這種情況,不妨先停下腳步休息一下,有時候休息是為了走更長遠的路,不需要和別人比較,按照自己的步調去學習、累積,時間拉長一點你會發現原來我進步了這麼多!! 只要今天的自己比昨天更進步這就足夠了。
當你學習一門新語言或新框架時,是否感到有些吃力? 或需要花很多的時間才能學會? 如果有那可能是你的基本功還不夠紮實 (給大家一個參考,可能不適用於每個人),這時建議可以回頭去加強基礎的部分,等基礎紮實以後,再去看新語言或框架,你會發現學習的效率提高了不少,程式語言和框架其實只是一套抽象思考的方式,當基本功紮實以後,可以比較容易的抓到重點或差異,學習起來自然就會輕鬆許多。
小結,學習上我會建議,基礎科目和新技術交替學習,兩邊一起成長。
回到主題,我把基本功分為五個部分 (如上圖)。藍色區塊的基本邏輯和物件導向屬於「基礎部分」,他們延伸出去的橘色區塊則屬於「進階部分」。
在程式初學階段,通常會從藍色區塊開始學起,我們會先選一門喜歡的語言,然後學習基本的程式邏輯,條件式、迴圈、陣列、函數,如果語言有支援物件導向,就會開始接觸,類別、繼承、多型、泛型、等等...,所以歸類為基礎。
接下來為了解決更複雜的問題,就會需要學習「資料結構」、「演算法」,這兩門學科主要是教我們如何將資料變成抽象結構,和評估程式的效能,因為他們比較偏向基本邏輯的更複雜組合和運用,所以我定義為基本邏輯的延伸。而「設計模式」也是相同的概念,是物件導向的更複雜組合和運用,所以我將其定義為物件導向的延伸,三者歸類為進階部分。
為什麼要學演算法? 其實進階項目都很重要,但因設計模式在工作上用到的比較少 (我自己的經驗),所以我會推薦把更多的時間投資在資料結構和演算法上,想要寫出效能優異的程式,這兩門學科是一定要學好學滿的!!!
實作是提升程式能力最快的方式,演算法也不例外,所以這次我以會以 LeetCode 挑戰賽的題目為主題,通過實際的解題過程,和大家一起學習演算法和資料結構。
而為什麼想製作影片教學呢? 一是想挑戰自己,學習不一樣的新事物,二是資料結構和演算法常讓人們覺得艱澀難懂或是枯燥乏味,所以希望能透過影片配合簡單的動畫呈現,讓教學有趣一些,且方便大家理解、加深記憶。
第一次嘗試製作影片,還有很多需要改進的地方,還請各位大大鞭小力一點。
(́◕◞౪◟◕‵)*
由於影片製作時間比較長,發現日更完全不可能,所以果斷放棄,大概會像去年一樣吧,半年後還在發文這樣... ((完全無視比賽規則。 ╰( ̄▽ ̄)╭
感謝大家觀看,我們下次見。 (To be continued.)
每次想到F大這麼享受程式,煩躁的心就會慢慢穩定下來呢! 期待這次的影片教學!
哈哈哈,加油加油!!!